www.gusucode.com > 降维工具箱 - drtoolbox源码程序 > 降维工具箱 - drtoolbox\drtoolbox(降维工具箱)\techniques\iterative_spca.m

    function a_next = iterative_spca(x, a_current, output)
%ITERATIVE_SPCA Performs single SPCA iteration
%
%   a_next = iterative_spca(x, a_current, output)
%
% Performs single SPCA iteration. This function is used by the SPCA
% function.
%
%

% This file is part of the Matlab Toolbox for Dimensionality Reduction v0.2b.
% The toolbox can be obtained from http://www.cs.unimaas.nl/l.vandermaaten
% You are free to use, change, or redistribute this code in any way you
% want. However, it is appreciated if you maintain the name of the original
% author.
%
% (C) Laurens van der Maaten
% Maastricht University, 2007

    % Perform a single SPCA update
    s_x = size(x);
    n_features = s_x(1,1);
    y = a_current' * x;
    phi_2 = (1 / pdist([a_current'; zeros(1, n_features)])) * y * x;
    a_next = a_current + phi_2;